数组 b[5][4]中有鞍点,即b[i][j]在i行中最小,在j列中最大,输出所有鞍点和下标值。也可能没有
来源:百度知道 编辑:UC知道 时间:2024/06/08 11:11:29
优化了一下 Starfire9 的程序。
int b[5][4] = {{5,4,5,5},{6,5,6,6},{5,4,5,5},{4,3,4,4},{3,2,3,3}};
#include <stdio.h>
int row[5] = {0}; //row[i]表示第i行的最小值在第row[i]列
int col[4] = {0}; //col[j]表示第j列的最大值在第col[j]行
int main() {
int i, k;
for (i = 0; i < 5; i++) {
for (k = 1; k < 4; k++) {
if (b[i][row[i]] > b[i][k]) {
row[i] = k;
}
if (b[col[k]][k] < b[i][k]) {
col[k] = i;
}
}
}
for (i = 0; i < 5; i++) {//打印结果
if (col[row[i]] == i)//当行最小,列最大重叠时打印结果
printf("i:%d j:%d value:%d\n", i, row[i], b[i][row[i]]);
}
return 0;
}
int k,g;
for (i=0;i<5;i++) {
for (j=0;j<4;j++) {
k=0;
g=0;
for (x=0;x<5;x++) {
if (x==i) break;